A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network the computing devices communicate data by dividing the data into small blocks called packets. Certain devices within the network, such as routers, maintain routing information that describes routes through the network. In this way, the packets may be individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
A virtual private local area network service (VPLS) may be used to extend two or more remote customer networks, i.e., VPLS sites, through a network (usually referred to as a service provider network), such as the Internet, in a transparent manner, i.e., as if the network does not exist. In particular, the VPLS transports layer two (L2) communications, such as Ethernet packets, between customer networks via the network. In a typical configuration, routers coupled to the customer networks (such routers will be referred to as “members of the VPLS”) define label switched paths (LSPs) that may be used as the data transport for pseudowires within the service provider network to carry encapsulated L2 communications as if these customer networks were directly attached to the same local area network (LAN).
The service provider network includes multiple provider routers that form a core network for forwarding different types of traffic, such as IP-based traffic, VPLS traffic and the like. In some cases, routers in the core network may be coupled by more than one physical link to improve bandwidth and reliability. As a router forwards network packets to another router in the core across multiple links, the router may evenly distribute the network packets across each of the network links. In some instances, however, out-of-order delivery must be avoided when forwarding network traffic. For instance, packets that are associated with the same network flow should be forwarded on the same physical network link to prevent out-of-order delivery of the packets at the destination. Such packets that must be forwarded on the same links without reordering may be referred to as a flow. It may be ensured that packets belonging to a single flow are forwarded on the same links by computing a hash on certain fields in the packet headers, such that the hash computed on these fields on any packet in the given flow will result in the same hash value.
For this reason, routers within the core may perform preliminary inspection of packet headers within packets traversing the network to associate the packets with particular flows so as to ensure that packets of the same flow follow the same physical link. During this process the routers attempt to identify the type of packet (e.g., a VPLS packet, an IP packet or the like) in order to determine which portions of the packet to utilize for ensuring that the packet is forwarded on the same physical link as other packets of the packet flow. However, in some cases, routers may incorrectly determine the type of packet, causing improper processing and potentially leading to packets of the same flow to be directed along different physical links. For example, in some cases a preliminary inspection by a router may include determining whether the packet correctly specifies a valid IP version (e.g., “4” or “6”) at a defined location of the packet header and, based on such a determination, concluding that the packet is an IP-based packet. However, in some examples, a VPLS frame may include information, such as a portion of a destination MAC address, in the same location of the frame header that would otherwise include the IP version (e.g., “4” or “6”) of an IP packet. If a value at this defined location of the VPLS frame header includes a valid IP version value, the VPLS frame may be misidentified as an MPLS packet carrying an IP packet. In response, the router may forward the misidentified VPLS frame as an MPLS packet carrying an IP packet using a network link that is different than the network link used for the other VPLS frames in the network flow. For instance, the router may compute a hash on those fields that would ordinarily be used for hashing for IP packets. This incorrect hashing could cause packets of the same flow going over a VPLS to be forwarded on a logical link that is different than the logical link used for the other VPLS frames in the network flow. This may lead to out-of-order delivery.
To prevent out-of-order delivery, provider edge routers may employ techniques to insert a control word (e.g., string of zeros) when constructing a VPLS frame so as to effectively shift header information of VPLS payload headers out of the frame header location that would otherwise be inspected in an MPLS packet carrying an IP network packet for the IP version number, thereby avoiding the above described misclassification. Although such techniques using a control word may be implemented, situations may arise in which all provider edge routers in a service provider network may not support such techniques at the same time (e.g., due to legacy systems or systems that have not yet been upgraded). Therefore, some provider edge routers may support a control word, while others may not, which results in a hybrid provider edge router space. In some examples, a provider edge router that supports the use of a control word may improperly decapsulate and/or remove information from a VPLS frame that does not include a control word if the frame is received from a provider edge router that does not support the use of a control word in a hybrid provider edge router space. As a result, networks with this hybrid PE router space (i.e., a network in which only a subset of the VPLS-enabled PE routers support the use of a VPLS control word) may be hard to manage and operate.